import wepy from 'wepy'

export default class SearchMix extends wepy.mixin {
  data = {
    value: '',
    // 搜索建议列表
    suggestList: [],
    // 本地存储的搜索历史列表
    kwList: []
  }

  onLoad() {
    // 1、从本地存储中取到存储的数据，如果之前没有存储，就设置一个空数组为默认值
    const kwList = wepy.getStorageSync('kw') || []
    this.kwList = kwList

    console.log(this.kwList)
  }


  computed = {
    // 使用计算属性，判断是展示搜索历史区域还是展示搜索建议列表
    // ① 如果 搜索关键字长度小于等于 0，展示搜索历史区域 return true 
    // ② 否则 return false，展示搜索建议列表
    isShowHistory () {
      if (this.value.length <= 0) {
        return true
      }

      return false
    }
  }

  // 获取搜索建议列表数据
  async getSuggestList(searchStr) {
    const { data: res } = await wepy.get('/goods/qsearch', { query: searchStr })

    // 判断返回的数据是否成功
    if (res.meta.status !== 200) {
      return wepy.baseToast()
    }

    this.suggestList = res.message
    this.$apply()
  }

  methods = {
    // 输入内容变化时触发
    onChange(e) {

      this.value = e.detail

      if (e.detail.trim().length <= 0) {
        this.suggestList = []
        return
      }

      this.getSuggestList(e.detail)
    },

    // 触发搜索时执行的方法
    onSearch(e) {
      let kw = e.detail.trim()

      if (kw.length <= 0) {
        return
      }

      // 使用 indexOf 判断搜索历史列表中是否存在同名的关键字，
      // 如果返回的值等于 -1，说明不存在，不存在的话就将搜索关键字
      // 追加到数组的最前面
      if (this.kwList.indexOf(kw) === -1) {
        this.kwList.unshift(kw)
      }

      // 整个搜索历史只能存储 10 个搜索的关键字
      this.kwList = this.kwList.splice(0, 10)

      // 将处理好的 kwList 保存到本地存储中
      wepy.setStorageSync('kw', this.kwList)

      wepy.navigateTo({
        url: '/pages/goods_list?query=' + kw
      })
    },

    // 取消搜索时触发
    onCancel() {
      this.suggestList = []
    },

    // 跳转到商品详情
    goGoodDetail (goodsId) {
      wepy.navigateTo({
        url: '/pages/goods_detail/main?goods_id=' + goodsId
      })
    },

    // 跳转到商品列表
    goGoodsList (item) {
      wepy.navigateTo({
        url: '/pages/goods_list?query=' + item
      })
    },

    // 清空本地历史
    clearHistory () {
      this.kwList = []
      wepy.setStorageSync('kw', [])
    }
  }
}
